# 使用 Debian11 作为基础镜像
FROM ccr.ccs.tencentyun.com/liumou/ubuntu-build:latest
# 设置Mariadb版本信息变量,通过--build-arg MARIADB_VERSION=1.27.0 实现版本设置
ARG MARIADB_VERSION
ARG DST
ARG MARIADB_ROOT_PASSWORD=123456

# 设置时区
ENV TZ=Asia/Shanghai
# 设置Shell
ENV SHELL /bin/sh
ENV DEBIAN_FRONTEND noninteractive
# 镜像描述
LABEL description="基于Ubuntu22构建的Mariadb镜像服务"
# 作者信息
LABEL maintainer="坐公交也用券"
# 项目主页
LABEL home="https://gitee.com/liumou_site/dockerfile"
# 个人网站
LABEL Site="https://liumou.site"
# Mariadb版本
LABEL MariadbVersion="$MARIADB_VERSION"

COPY pcre2-10.44.zip /tmp/
# 下载最新版本的Mariadb源码
RUN wget https://mirrors.aliyun.com/mariadb/mariadb-${MARIADB_VERSION}/source/mariadb-${MARIADB_VERSION}.tar.gz -O /tmp/mariadb-${MARIADB_VERSION}.tar.gz

# 解压源码包
RUN tar -zxvf /tmp/mariadb-${MARIADB_VERSION}.tar.gz -C /tmp/
RUN unzip /tmp/pcre2-10.44.zip -d /tmp/
RUN mv /tmp/pcre2-10.44 /tmp/mariadb-${MARIADB_VERSION}/pcre2
# 进入源码目录
WORKDIR /tmp/mariadb-${MARIADB_VERSION}
# 开始预编译
RUN cmake . -DCMAKE_INSTALL_PREFIX=${DST} \
-DMYSQL_DATADIR=/var/lib/mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/var/run/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

# 编译并安装Mariadb
RUN make -j 4
RUN make install
# 创建用户
RUN groupadd mysql && useradd -g mysql -r -s /bin/bash  -d /var/lib/mysql mysql

# 创建配置目录
RUN mkdir -p /var/lib/mysql /etc/mariadb /var/tmp/mysql /var/run/mysql
RUN chown -R mysql:mysql /var/lib/mysql /etc/mariadb /var/tmp/mysql /var/run/mysql
RUN chmod 1777 /tmp /var/tmp/mysql /var/run
# 定义工作目录
WORKDIR ${DST}
RUN chgrp mysql ./*
# 初始化数据库
RUN scripts/mariadb-install-db --user=mysql --datadir=/var/lib/mysql
# # 清除下载的源码包
RUN rm -rf /tmp/Mariadb-${MARIADB_VERSION} /tmp/Mariadb.tar.gz
# 创建软连接
RUN ln -s ${DST}/bin/mysql /usr/bin/mysql
RUN ln -s ${DST}/bin/mysqldump /usr/bin/mysqldump
RUN ln -s ${DST}/bin/mysqlcheck /usr/bin/mysqlcheck
RUN ln -s ${DST}/bin/mysql_install_db /usr/bin/mysql_install_db
RUN ln -s ${DST}/bin/mysql_secure_installation /usr/bin/mysql_secure_installation
RUN ln -s ${DST}/bin/mariadbd /usr/bin/mariadbd
COPY my.cnf /etc/mysql/my.cnf
RUN chmod 644 /etc/mysql/my.cnf
# 设置环境变量
ENV PATH="${DST}/bin:$PATH"

# 切换用户
USER mysql

# 启动服务
#RUN #mariadbd & sleep 5
# 初始化密码
#RUN #mysqladmin -u root password "${MARIADB_ROOT_PASSWORD}"
# 暴露3306端口
EXPOSE 3306
# 定义启动命令
CMD ["/usr/bin/mariadbd"]